package cn.dubito.mmall.dao;

import cn.dubito.mmall.pojo.User;
import org.apache.ibatis.annotations.Param;
/**
 * @author liliang
 */
public interface UserMapper {
    /**
     * 主键删除
     * @param id
     * @return
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 插入
     * @param record
     * @return
     */
    int insert(User record);

    /**
     * 选择插入
     * @param record
     * @return
     */
    int insertSelective(User record);

    /**
     * 主键查询
     * @param id
     * @return
     */
    User selectByPrimaryKey(Integer id);

    /**
     * 选择更新
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(User record);

    /**
     * 更新
     * @param record
     * @return
     */
    int updateByPrimaryKey(User record);

    /**
     * 根据名称获取数量
     * @param username
     * @return
     */
    int checkUsername(String username);

    /**
     * 获取邮箱数量
     * @param email
     * @return
     */
    int checkEmail(String email);

    /**
     * 查询用户名密码
     * @param username
     * @param password
     * @return
     */
    User selectLogin(@Param("username") String username, @Param("password")String password);

    /**
     * 查询用户问题
     * @param username
     * @return
     */
    String selectQuestionByUsername(String username);

    /**
     * 查询问题答案
     * @param username
     * @param question
     * @param answer
     * @return
     */
    int checkAnswer(@Param("username")String username,@Param("question")String question,@Param("answer")String answer);

    /**
     * 更新密码
     * @param username
     * @param passwordNew
     * @return
     */
    int updatePasswordByUsername(@Param("username")String username,@Param("passwordNew")String passwordNew);

    /**
     * 查询密码
     * @param password
     * @param userId
     * @return
     */
    int checkPassword(@Param(value="password")String password,@Param("userId")Integer userId);

    /**
     * 查询邮箱
     * @param email
     * @param userId
     * @return
     */
    int checkEmailByUserId(@Param(value="email")String email,@Param(value="userId")Integer userId);
}